home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AdobeExamples / NX_ImportAdv / ScrollingView.m < prev   
Text File  |  1992-12-19  |  2KB  |  73 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34.  *    ScrollingView.m
  35.  *
  36.  *    The sole purpose of subclassing ScrollView is to sync up the
  37.  *    scrolling of the alpha buffer with the scrolling of the window.
  38.  *
  39.  *    The lockFocus and the unlockFocus are a little voodoo magic
  40.  *    that causes the compositing in the raw scroll of the buffer to work.
  41.  *    (The window that contains the buffer is displayed when it is first
  42.  *    created in order to set the canDraw instance variable in buffer
  43.  *    view to YES. Again, more voodoo.)
  44.  */
  45.  
  46. #import "ScrollingView.h"
  47. #import "DocView.h"
  48. #import "DrawingView.h"
  49.  
  50. #import <appkit/ClipView.h>
  51.  
  52. @implementation ScrollingView
  53.  
  54. - scrollClip:aClipView to:(const NXPoint *)aPoint
  55. {
  56.     id        buffer, drawview;
  57.     
  58.     drawview = [[self  docView]  drawView];
  59.  
  60.     buffer = [drawview  buffer];
  61.     [[buffer superview]  rawScroll:aPoint];
  62.     [buffer  lockFocus];
  63.     [buffer  unlockFocus];
  64.  
  65. //    DPSTraceContext(DPSGetCurrentContext(), YES);
  66.     [aClipView  rawScroll:aPoint];
  67. //    DPSTraceContext(DPSGetCurrentContext(), NO);
  68.         
  69.     return self;        
  70. }
  71.  
  72. @end
  73.